const app = getApp();

import dateTimePicker from './dateTimePicker';
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    format: {
      type: String,
      value: 'yyyy-MM-dd hh:mm'
    },

    value: {
      type: String,
      value: ''
    },

    startText: {
      type: String,
      value: ''
    },
    showStartText: {
      type: Boolean,
      value: false
    }
  },
  observers: {
    value: function(value) {
      
      this.init()
    }
  },

   /**
   * formatDateTime 封装格式化日期的方法
   * showDate 当前时间
   * dateTime 存储当前选择时间
   * dateTimeArray 存储时间数组
   * endYear 默认为2100，这里我是当前时间往后推10年
   */
  data: {
    showDate: '',
    dateTime: null,
    dateTimeArray: null,
    endYear: new Date().getFullYear() + 20
  },

  lifetimes: {
    attached: function() {
      this.init()
    },
    detached: function() {
      // 在组件实例被从页面节点树移除时执行
    },
  },

  /**
   * 组件的方法列表
   */
  methods: {
    init () {
      // 获取完整的年月日 时分秒，以及默认显示的数组
      // 1、开始年份使用默认 1978年
      // 2、结束年份
      // 3、当前显示时间
      
      if (this.data.value) {
        var str = this.data.value.replace(/-/g, '/')
        this.data.showDate = dateTimePicker.formatDateTime(this.data.format, new Date(str))
      } else {
        this.data.showDate = dateTimePicker.formatDateTime(this.data.format, new Date())
      }
      var obj = dateTimePicker.dateTimePicker('', this.data.endYear, this.data.value);
      
      this.setData({
        dateTime: obj.dateTime,
        dateTimeArray: obj.dateTimeArray,
        showDate: this.data.showDate
      });
      
   
      this.triggerEvent('change', this.formatDate('yyyy-MM-dd HH:mm'))
    },
   
    changeDateTime(e) {
      
      

      // arr此处使用新数据，否则数据不刷新
      this.arr = e.detail.value
      this.dateArr = this.data.dateTimeArray
      // this.dateArr[2] = dateTimePicker.getMonthDay(this.dateArr[0][this.arr[0]], this.dateArr[1][this.arr[1]]);
      

      
     
      this.setData({
        dateTimeArray: this.dateArr,
        dateTime: this.arr,
        showStartText: false
      });
      this.setData({
        showDate: this.formatDate(this.data.format) 
      })

      this.triggerEvent('change', this.formatDate('yyyy-MM-dd HH:mm'))
    },
    formatDate (format) {
      
      var arr = this.data.dateTime
      var dateArr = JSON.parse(JSON.stringify(this.data.dateTimeArray)) 
      for(var i = 0; i<dateArr.length; i++) {
        for(var n = 0; n<dateArr[i].length; n++) {
          dateArr[i][n] = dateArr[i][n].replace(/[年月日时分秒]/g, '')
        }
      }

      let showDate = format.replace('yyyy',dateArr[0][arr[0]] )
      showDate = showDate.replace('MM',dateArr[1][arr[1]] )
      showDate = showDate.replace('dd',dateArr[2][arr[2]] )
      showDate = showDate.replace('HH',dateArr[3][arr[3]] )
      showDate = showDate.replace('hh',dateArr[3][arr[3]] )
      showDate = showDate.replace('mm',dateArr[4][arr[4]] )
      // showDate = showDate.replace('ss',dateArr[5][arr[5]] )

      
      return showDate
    }
  }
})
